#include <openssl/md5.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>

int main(void)
{
    char *filename = "test/app_buffer_test.c";
    uint8_t buf[1024];
    uint8_t hash[MD5_DIGEST_LENGTH];
    MD5_CTX ctx;
    int fd = open(filename, O_RDONLY);
    size_t len = read(fd, buf, 1024);
    MD5_Init(&ctx);
    while (len)
    {
        MD5_Update(&ctx, buf, len);
        len = read(fd, buf, 1024);
    }
    close(fd);
    MD5_Final(hash, &ctx);
    for (size_t i = 0; i < MD5_DIGEST_LENGTH; i++)
    {
        printf("%02x", hash[i]);
    }

    return 0;
}
